$(document).ready(function() {
	function exportReport(pageWidth, pageDirect, docType) {
		var actionUrl;
		if (docType == 'pdf') {
			actionUrl = 'exportReport/exportPdf';
		} else if (docType == 'docx') {
			actionUrl = 'exportReport/exportDocx';
		} else if (docType == 'excel') {
			return;
		}
		var pageHtml = CKEDITOR.instances.editor.getData();

		$('#' + tempEditorName).children().remove();
		$('#' + tempEditorName).append($.parseHTML(pageHtml));
		var $_data = $('#' + tempEditorName);

		// 处理单个字符
		var simpleDatas = $_data.find('span.h-card');
		$.each(simpleDatas, function(i, n) {
			var $_this = $(n);
			var showVal = $_this.text();
			$_this.before('<span>' + showVal + '</span>');
		});
		simpleDatas.remove();

		var smartTableJsons = '';
		// 表格和自定义表格一起处理
		var frTable = $_data.find('div.smarttable-preview,div.smartfreetable-preview');
		$.each(frTable, function(i, n) {
			var tabSign = ck.util.randomString(16, 'aA');
			var tempTable = $('<p>' + tabSign + '</p><p></p>');
			var $_this = $(n);
			if ($_this.hasClass('smarttable-preview')) { // 表格
				var id = $_this.data('tabid');
				var obj = {
					tableData: JSON.stringify($_doc.data(id).exportTableData),
					dataType : 'table',
					id: tabSign
				}
				smartTableJsons += (encodeURIComponent(JSON.stringify(obj)) + '@');
			} else if ($_this.hasClass('smartfreetable-preview')) { // 自定义表格
				var allTr = $_this.find('table:eq(0) tr');
				var table = [];
				$.each(allTr, function(i, tr) {
					var tds = $(tr).find('td');
					var line = [];
					$.each(tds, function(i, td) {
						var $_td = $(td);
						var text = $_td.text();
						line.push(text);
					});
					table.push(line);
				});

				var tabId = $_this.attr('id');
				var freeTabObj = $_doc.data(tabId);
				smartTableJsons += (encodeURIComponent(JSON.stringify({
					id: tabSign,
					dataType : 'freeTable',
					tableData: JSON.stringify({
						data:table,
						mergedCellInfos:freeTabObj.mergedCellInfos
					})
				})) + '@');
			}
			$_this.before(tempTable);
		});
		frTable.remove();

		var chartOptions = '';
		var charts = $_data.find('div.smartchart2-preview');
		$.each(charts, function(i, n) {
			var $_this = $(n);
			var id = $_this.attr('data-tabid');
			var insertImg = $('<img class="smartchart" style="width:100%;height:420px;text-align:center;" id="' + id + '"/>');
			// 判断数据是否为空
			if ($_this.find('.empty_data').size() != 0) {
				insertImg.addClass('empty_data');
			} else if ($_this.find('.config_error').size() != 0) {
				insertImg.addClass('config_error');
			} else if ($_this.find('.req_error').size() != 0) {
				insertImg.addClass('req_error');
			} else {
				var option = JSON.stringify($('body').data('chart_' + id));
				chartOptions += (id + '|' + encodeURIComponent(option) + '@');
			}
			$_this.before(insertImg);
		});
		charts.remove();

		$_data.find('.hideClass').remove();

		var exportForm = $('#exportForm');
		exportForm.attr('action', actionUrl);
		exportForm.find('input[name="pageId"]').val(pageId);
		exportForm.find('input[name="pageWidth"]').val(pageWidth);
		exportForm.find('input[name="pageDirect"]').val(pageDirect);
		exportForm.find('textarea[name="chartOptions"]').text(chartOptions);
		exportForm.find('textarea[name="smartTableJsons"]').text(smartTableJsons);
		exportForm.find('textarea[name="pageHtml"]').text(encodeURIComponent($_data.html()));

		exportForm.submit();
	}
	$('#export,#pageExportBtn').on('click', function() {
		var targetId = $(this).attr('id');

		$('#exportReport').dialog({
			title: '导出报表',
			width: 320,
			height: 200,
			modal: true,
			show: true,
			resizable: false,
			buttons: [{
				text: "确定",
				click: function() {
					var $_this = $(this);
					var pageWidth = $_this.find('#pageWidth').val();
					if ($.isNumeric(pageWidth)) {
						pageWidth = parseInt(pageWidth);
						if (!(pageWidth >= 960 && pageWidth <= 1200)) {
							alert('页面大小必须在范围之内');
							return;
						}
					} else {
						alert('页面大小只能为数字类型');
						return;
					}

					var pageDirect = $_this.find('#pageDirect option:selected').val();
					var docType = $(this).find('#pageType option:selected').val();					
					exportReport(pageWidth, pageDirect, docType);
					$(this).dialog("close");
					jQuery.isExport = true;
				}
			}, {
				text: "取消",
				click: function() {
					$(this).dialog("close");
				}
			}]
		});
		if (targetId == 'export') {
			$.toggleSystemMenu('hide');
		}
	});
})
